import request from './request'

/**
 * 字典类型API
 */
export const dictTypeApi = {
  // 分页查询字典类型列表
  getPage(params) {
    return request({
      url: '/dict/type/list',
      method: 'get',
      params
    })
  },

  // 获取所有字典类型列表
  getAll() {
    return request({
      url: '/dict/type/all',
      method: 'get'
    })
  },

  // 根据ID获取字典类型详情
  getById(id) {
    return request({
      url: `/dict/type/${id}`,
      method: 'get'
    })
  },

  // 添加字典类型
  add(data) {
    return request({
      url: '/dict/type',
      method: 'post',
      data
    })
  },

  // 更新字典类型
  update(data) {
    return request({
      url: '/dict/type',
      method: 'put',
      data
    })
  },

  // 删除字典类型
  delete(id) {
    return request({
      url: `/dict/type/${id}`,
      method: 'delete'
    })
  },

  // 批量删除字典类型
  deleteBatch(ids) {
    return request({
      url: '/dict/type/batch',
      method: 'delete',
      data: ids
    })
  }
}

/**
 * 字典数据API
 */
export const dictDataApi = {
  // 分页查询字典数据列表
  getPage(params) {
    return request({
      url: '/dict/data/list',
      method: 'get',
      params
    })
  },

  // 根据字典类型获取字典数据列表
  getByType(dictType) {
    return request({
      url: `/dict/data/type/${dictType}`,
      method: 'get'
    })
  },

  // 根据ID获取字典数据详情
  getById(id) {
    return request({
      url: `/dict/data/${id}`,
      method: 'get'
    })
  },

  // 添加字典数据
  add(data) {
    return request({
      url: '/dict/data',
      method: 'post',
      data
    })
  },

  // 更新字典数据
  update(data) {
    return request({
      url: '/dict/data',
      method: 'put',
      data
    })
  },

  // 删除字典数据
  delete(id) {
    return request({
      url: `/dict/data/${id}`,
      method: 'delete'
    })
  },

  // 批量删除字典数据
  deleteBatch(ids) {
    return request({
      url: '/dict/data/batch',
      method: 'delete',
      data: ids
    })
  }
}

/**
 * 根据字典类型获取字典数据（独立函数，便于使用）
 */
export const getDictDataByType = (dictType) => {
  return request({
    url: `/dict/data/type/${dictType}`,
    method: 'get'
  })
}